In many machining processes, several machines work together with the characteristics of synchronization, concurrency, and cyclic sequences. A logic controller is a discrete event supervisory system which controls parallel and synchronized sequences of elementary operations of each machine to achieve the goal of the machining system.
In other words, logic controllers are event-based systems whose purpose is to control the behavior of a process which is itself an event-based system. A manufacturing system with a logic controller is shown in FIG. 1. The machining system considered in FIG. 1 is a high volume transfer line. Generally, this kind of manufacturing system has several stations inside the system which work together to produce the desired part.
The inputs of the logic controller are signals which are generated by the sensors in each station, and the outputs are Boolean signals (on/off signals). The logic controller governs the sequence of each station and the events which occur in machining process specified by the control algorithm. Control engineers in the machine tool industry use a timing bar chart as a guide to program control algorithms for the logic controller.
An example of a timing bar chart is shown in FIG. 9. It has information about the sequence of each module in the system and the concurrencies of the whole process sequence. The causal dependencies of the sequences are represented using the time axis and the dotted arrows correlate the sequences which depend on each other. The timing information of each operation comes from the specifications of the servo control loops that govern the underlying continuous-time systems. From this information, the time for each operation can be calculated and used in the timing bar chart. The timing bar chart has all the information needed to describe the sequences for the process. In other words, it represents the specification of the operations for the desired process.
The programs for the logic controller for the system are generated manually from this timing bar chart and the hard wiring information. A problem with this procedure is that this is not a formal way to generate the control logic programs. Therefore, the initial programming of the system as well as the modification of the control logic due to minor change of the operations of the system is very difficult and time-consuming.
Petri nets have generally been considered as an analysis tool for event based systems which are concurrent, synchronized, and distributed. For example, the U.S. Pat. No. 5,257,363 to Shapiro et al. discloses a computer-aided generation of programs modeling complex systems using colored Petri nets. Also, the U.S. Pat. No. 5,291,427 to Loyer et al. discloses a method for assisting the development of a set of communicating automata wherein a development machine is supplied with a description of initial elementary Petri nets.
Petri nets enable the qualitative and quantitative analysis of an event-based system. One can check the correctness of the modeled system from the qualitative analysis and analyze the efficiency of the modeled system from the quantitative analysis. A Petri net is a mathematical formalism which has a simple graphical representation. Petri nets consist of two kinds of nodes: places which are represented by circles, and transitions, represented by bars. Nodes are connected by arcs. As a system's behavior can be described by its state and evolution rules, the dynamics of a Petri net are created by its marking and marking evolution rule. A marking assigns to each place a non-negative integer and the integer value is graphically represented by the number of tokens in each circle (place). The number of tokens at a place represents the local state of the place and the state of the whole system is defined by the collection of local states of the places. A Petri net and its evolution rule can be represented formally by the following definitions and a pictorial example for the evolutions of an ordinary Petri net is given in FIGS. 3a-3d.
In an initial marking of FIG. 3a, there is one token in p1. Transition t1 is enabled because all places leading to it are marked; it is the only transition enabled. After transition t1 fires, the marking becomes in FIG. 3b. Each place leading out of transition t1 gets a token. Now transition t2 is enabled (transition t3 cannot fire until both places p3, p4 are marked). If more than one transition is enabled at a time, the Petri net exhibits nondeterministic behavior. After transition t4 fires, the Petri net returns to its initial marking of FIG. 3a. The Petri net is said to be reversible.
Definition 1.
A Petri net is a four-tuple; EQU N=(P, T, F, W)
where:
P is a finite non-empty set of n=.vertline.P.vertline. places, P={p.sub.1, p.sub.2, . . . P.sub.n } PA1 T is a finite non-empty set of m=.vertline.T.vertline. transitions, T={t.sub.1, t.sub.2, . . . , t.sub.m } PA1 F.OR right.(P.times.T).orgate.(T.times.P) is the flow relation (set of directed arcs) PA1 W:F.fwdarw.Z.sup.+ assigns a weight to each arc, W={1, 2, 3, . . . }. PA1 1. A transition t is said to be enabled if each input place p of t is marked with at least as many tokens as the weight of the arc joining them. PA1 2. An enabled transition may or may not fire depending on whether or not the transition (event) actually takes place. PA1 3. A firing of an enabled transition t removes w(p,t) tokens from each input place p of t, and adds w(t,p) tokens to each output place p of t.
Definition 2.
A Petri net is ordinary if all the arc weights are one.
Definition 3.
A marking M of a net N is the assignment of a non-negative integer to each place. It is a state-vector of the Petri net system which has dimension n.
Definition 4.
A Petri net with the given initial marking is denoted by &lt;N,M.sub.0 &gt;.
Definition 5.
A state or marking in a Petri net evolves according to the following transition (evolution) rules:
Grafcet is a graphical programming language--originally developed by AFCET (Association Francais pour la Cybernetique Economique et Technique) in France and has become an international standard The Grafcet language represents the functions of an automation system as a sequence of steps and transitions--with directed flow lines connecting the two. It was specifically designed for sequential control problems where the steps are sequential or time dependent. Each step in a Grafcet sequence represents a stable situation in an automation process and has one or more actions associated with it--while a transition indicates the possibility of evolution from one step to the next. Boolean events are associated with each transition. Sequences may be linked together by a branch construct which may represent a conditional or a parallel flow of execution. A single Flow Line is used to link steps and transitions together to indicate the flow of execution. Double flow lines are used when two or more steps within a program must be synchronized.
IEC 1131 is a standard set down by the International Electrotechnical Commission that specifies the syntax and semantics of a unified suite of programming languages for programmable controllers. Part of the standard refers to Sequential Function Charts that is Grafcet-like in structure.
As previously mentioned, a major task in the design of machining systems is the design of logic controllers. As also described above, generally a machining system is composed of several stations and the operation of the system is governed by sequences of events within the stations as well as dependencies across the stations. In devising control algorithms for such a machining system, it is necessary to consider not only the event sequence of each station but also the correlated sequences of the entire system. Even though logic controllers are very important in the machining industry, there is not yet a standard integrated tool, which is sufficiently powerful, versatile and simple to use, and with which it is possible to carry out formal analysis of correctness besides the traditional approach of validation through simulation.